//
// Created by oren.huang on 9/29/23.
//

#ifndef BSTSVMSENSFWK_IREPLAYIMPL_HPP
#define BSTSVMSENSFWK_IREPLAYIMPL_HPP

#include "CameraFrame.hpp"
#include "BevFrame.hpp"
#include <functional>

class IReplayImpl {
public:
    virtual ~IReplayImpl() = default;
    virtual void start(const std::function<void(std::shared_ptr<CameraFrame>&&)>&,
                       const std::function<void(std::shared_ptr<BevFrame> &&)> &bc, const long long int& time) = 0;
    virtual void stop() = 0;
    virtual bool isComplete() = 0;
    virtual void doRepeat() = 0;
    virtual long long int getFirstFrameTm() = 0;
};

#endif  // BSTSVMSENSFWK_IREPLAYIMPL_HPP
